package com.itfenghuang.day10;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

//客户端
public class A07_Client {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);

        // 1.创建Socket 套接字对象
        //host: IP地址
        //part: 端口号不要超过65535
        Socket socket = new Socket("127.0.0.1", 10076);;
        // 2. 获取输出流
        OutputStream os = socket.getOutputStream();
        //接受服务端会送的消息
        InputStream is = socket.getInputStream();
        byte[] bys=new byte[1024];

        while (true) {
            System.out.println("请输入");
            String   str = sc.nextLine();
            os.write(str.getBytes());//字符串转字节数组
            if ("886".equals(str)){
                break;
            }
            //读取数据
            int len = is.read(bys);
            String s = new String(bys, 0, len);
            System.out.println("服务端:"+s);
        }
        //释放资源
        socket.close();

        /**
         *  作业
         *   多人聊天第一步
         *   1,客户端发送一个消息给服务端(控制台输入),直到886 停止,接受服务端消息
         *         1.socket 创建套接字对象,指定IP地址,端口号
         *         2.发送消息给服务器,获取输出流
         *         3.接受服务端消息,获取输入流
         *         4.控制台输入  循环
         *         5.接受控制台输入信息,通过输出发送给服务器,通过输出流对象调用write方法
         *         6.接受服务器返回的消息,输入流读取服务端回送的信息 socket.getinput 读取
         *         7.控制台打印
         *         8.释放资源 循环外
         *   2.服务端接受客户端发送的消息,然后控制台打印,将这个消息回送客户端
         *      1.创建服务端套接字  ServerSocket 指定端口号
         *      2.监听连接  accept  返回socket
         *      3.服务端接受客服端发送的消息  socket.getInput 获取输入流
         *      循环
         *      4.读入数据  输入流对象 read
         *      5.将读入的数据在控制台打印输出
         *      6.消息返回给客户端 循环里  socket获取输出流  循环外
         *      7.通过输出流对象对应的方法 写出数据 write
         *      886
         *      8.释放资源
         *
         */
    }
}
